package routers

import (
	"github.com/gofiber/fiber/v2"
	"go_cms/app/controller"
	"go_cms/app/controller/advanceQuery"
	"go_cms/app/controller/product"
	"go_cms/app/controller/system"
	"go_cms/utils"
)

func InitRouters(app *fiber.App)  {
	// 处理登陆路由
	app.Post("/login", new(controller.UserController).Login)
	app.Get("/captcha", new(controller.UserController).Captcha)

	// 使用token中间件，后续所有请求必须携带token
	app.Use(utils.Auth())
	// 系统管理下的路由
		// 用户管理下的API
		app.Get("/users/:uid", new(system.UserManegeController).QueryUsersById)
		app.Post("/users/list", new(system.UserManegeController).UsersList)
		app.Delete("/users/:uid", new(system.UserManegeController).DeleteUsersById)
		app.Post("/users", new(system.UserManegeController).CreateUser)
		app.Patch("/users/:uid", new(system.UserManegeController).UpdateUser)

		// 部门管理下的API
		app.Post("/department/list", new(system.UserManegeController).DepartmentList)

		// 角色管理下的API
		app.Post("/role/list", new(system.UserManegeController).RoleList)
		app.Post("/role", new(system.UserManegeController).CreateRole)
		app.Patch("/role/:id", new(system.UserManegeController).UpdateRole)

		// 菜单管理下的API
		app.Post("/menu/list", new(system.UserManegeController).MenuList)

	// 商品管理
		// 商品信息下的API
		app.Post("/goods/list", new(product.GoodsController).GoodsList)

		// 商品分类下的API
		app.Post("/category/list", new(product.GoodsController).CategoryList)

	// 故事杂谈

	// 高级查询
	app.Get("/role/:uid/menu",new(advanceQuery.AdvanceQueryController).RoleMenu)

	// 图表数据
	app.Get("/goods/category/count", new(product.GoodsController).CategoryCount)
	app.Get("/goods/category/sale", new(product.GoodsController).CategorySale)
	app.Get("/goods/category/favor", new(product.GoodsController).CategoryFavor)
	app.Get("/goods/address/sale", new(product.GoodsController).AddressSale)
	app.Get("/goods/amount/list", new(product.GoodsController).AmountList)
}
